//
//  TouchView.m
//  03-UIResponder
//
//  Created by dllo on 16/7/18.
//  Copyright © 2016年 dllo. All rights reserved.
//

#import "TouchView.h"

@implementation TouchView

//1.重写touchesBegan:withEvent:方法，方法实现：NSLog输出指定方法名（__Function__）
//2.重写touchesMove:withEvent:方法，方法实现：NSLog输出指定方法名（__Function_）
//3.重写touchesEnd:withEvent:方法，方法实现：NSLog输出指定方法名（__Function__）。并给当前视图的背景颜色设置为随机色。

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
    return NO;
}




//继承于UIResponder
//Appdelegate UIView UIViewController
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    NSLog(@"%@------%s",[self class],__FUNCTION__);
//    NSLog(@"%@------%s",NSStringFromClass(self class),__FUNCTION__);
    [super touchesBegan:touches withEvent:event];
//    响应者链
//    触摸touchview时
//    检测顺序：硬件-》Appdelegate->UIApplication->UIWindow->UIViewController->UIView->TouchView
//    响应顺序：TouchView->self.view->UIViewController->UIWindow->UIApplication->appdelegate->NULL
//    如果所有的响应者都无法响应该事件，则这个时间会被舍弃
//    两种监测响应者的方法
//    1.Category 实现TouchBegin的方法
//    2.nextResponser
    
//    例1
//    响应者不要出边界，出边界的响应者无法响应
//    判断当前的点，在谁的范围内 pointInside:withEvent
    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
    button.frame = CGRectMake(10, 10, 200, 50);
    button.backgroundColor = [UIColor greenColor];
    [self addSubview:button];
    
//    button的点击方法如何实现
//    button点击效果，通过UIResponder对应的方法实现的
//    pointInside重写，实现失去响应能力（return NO）
    
    
}

- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
     NSLog(@"%@------%s",[self class],__FUNCTION__);
    
}

- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
     NSLog(@"%@------%s",[self class],__FUNCTION__);
}
@end
